package com.sky.mapper.courier;

import com.sky.pojo.CourierTradeOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 运单数据接口层
 * @author zgp
 * @version V1.0
 * @date 2025-02-10 19:55
 */
@Mapper
public interface CourierTradeOrderMapper {
    /**
     * 新增运单数据
     * @param courierTradeOrder 运单实体
     */
    void insert(CourierTradeOrder courierTradeOrder);

    /**
     * 查询骑手待接单订单列表
     * @param courierId 骑手id
     * @param status 待接单状态
     * @return 运单列表
     */
    List<CourierTradeOrder> selectByCourierIdAndStatus(@Param("courierId") Integer courierId, @Param("status") Integer status);

    /**
     * 根据订单号查询运单信息
     * @param orderNo 订单号
     * @return 运单
     */
    CourierTradeOrder selectByOrderNumber(String orderNo);

    /**
     * 根据运单id查询运单
     * @param tradeNo 运单id
     * @return 运单
     */
    CourierTradeOrder selectByTradeNo(Long tradeNo);

    /**
     * 根据运单号修改运单状态
     * @param tradeNo 运单号
     * @param waybillStatus 运单状态
     */
    void updateWaybillStatusByTradeNo(@Param("tradeNo") Long tradeNo, @Param("waybillStatus") Integer waybillStatus);

    /**
     * 根据运单号修改运单信息
     * @param courierTradeOrder 运单实体
     */
    void updateByTradeNo(CourierTradeOrder courierTradeOrder);

}
